import uvicorn
from fastapi import FastAPI

# 主页数据
from sprider.mainHtml import mainHtml
# 未来30天数据
from sprider.weather30Html import weather30Html
# 空气质量数据
from sprider.weatherAirHtml import weatherAirHtml
# 生活指数数据
from sprider.indicesHtml import indicesHtml
# 历史数据
from sprider.historicalHtml import historicalHtml
# 指定月份历史温度
from sprider.historicalTmp import historicalTmp

# 跨域
from starlette.middleware.cors import CORSMiddleware

app = FastAPI()

# 跨域
app.add_middleware(
    CORSMiddleware,
    # 允许跨域的源列表，例如 ["http://www.example.org"] 等等，["*"] 表示允许任何源
    allow_origins=["*"],
    # 跨域请求是否支持 cookie，默认是 False，如果为 True，allow_origins 必须为具体的源，不可以是 ["*"]
    allow_credentials=False,
    # 允许跨域请求的 HTTP 方法列表，默认是 ["GET"]
    allow_methods=["*"],
    # 允许跨域请求的 HTTP 请求头列表，默认是 []，可以使用 ["*"] 表示允许所有的请求头
    # 当然 Accept、Accept-Language、Content-Language 以及 Content-Type 总之被允许的
    allow_headers=["*"],
    # 可以被浏览器访问的响应头, 默认是 []，一般很少指定
    # expose_headers=["*"]
    # 设定浏览器缓存 CORS 响应的最长时间，单位是秒。默认为 600，一般也很少指定
    # max_age=1000
)


@app.get('/main')
async def getMainHtml(city, code):
    data = mainHtml(city, code)
    return data


@app.get('/weather30')
async def getWeather30Html(city, code):
    data = weather30Html(city, code)
    return data


@app.get('/air')
async def getAirHtml(city, code):
    data = weatherAirHtml(city, code)
    return data


@app.get('/indices')
async def getIndicesHtml(city, code):
    data = indicesHtml(city, code)
    return data


@app.get('/historical')
async def getHistoricalHtml(city, code):
    data = historicalHtml(city, code)
    return data


@app.get('/tmp')
async def getHistoricalTmp(city, code, year, month):
    data = historicalTmp(city, code, year, month)
    return data


if __name__ == '__main__':
    # uvicorn.run(app='main:app', host="127.0.0.1", port=8000, reload=True, debug=True)
    uvicorn.run(app='main:app', host="127.0.0.1", port=8000, reload=True)
